1. Field Of The Invention
This invention relates in general to the execution of different computer programs, and relates more particularly to the execution of a number of different incompatible programs on a single particular type of output device without the need for any special utility program.
2. Prior Art
There are a very large number of computer programs available for controlling the display of different types of information, either graphics or text, on a CRT monitor through its associated controller. There are a large number of programs compatible with, and designed to run on, display controllers offered by Hercules Computer Technology Co. ("Hercules"). These controllers include the Hercules Graphics Card (current model GB102, previous model GB100 and GB101), as well as Hercules Graphics Card Plus (GB112), and clones known as "Hercules Cards". Because of this large number of Hercules-controller-compatible software, the specifications of the Hercules Cards are known as "Hercules Standard". Other graphics programs operate on computers in the IBM PC* and PS/2 lines and clones thereof. FNT * (IBM, IBM PC, and PC-DOS are trademarks of International Business Machines Corporation.)
These Hercules cards are designed to drive, using digital transistor/transistor logic (TTL) compatible signals, monitors compatible with IBM's Monochrome Display Adapter (MDA). These monitors use a 16 MHz pixel clock frequency. Because these Hercules graphics programs are not supported by the IBM PC Disk Operating System (DOS)*, nor by the IBM Basic Input/Output System (BIOS), the Hercules programs operate directly upon the CRT controller registers of the Hercules cards. These registers are compatible with a CRT controller based on a 6845 integrated circuit originally manufactured by Motorola. There are 18 6845 CRT controller parameters to be programmed by each application. Each parameter can have multiple valid working values during the execution of a single program as well as across programs. FNT * (IBM, IBM PC, and PC-DOS are trademarks of International Business Machines Corporation.)
With the introduction by IBM of the Video Graphics Array (VGA) graphics systems, a new type of monitor was also introduced into the IBM PC field; the PS/2 Monitor, which is a fixed-frequency analog monitor. Non-IBM versions of these monitors have been brought out by other companies, resulting in a new class of monitors known as "PS/2 Compatible Monitors".
The large body of existing Hercules programs described above can not run on these PS/2 Compatible Monitors without some sort of special intervention. The reason the Hercules programs do not naturally run on PS/2-compatible monitors is because these monitors require a 31.5 KHz horizontal sync signal and a 60 to 70 Hz vertical sync signal, which are generated from a 28 MHz pixel clock frequency in text mode and a 25 MHz pixel clock frequency in graphics mode.
In contrast, the Hercules programs were written for digital monochrome monitors with an 18.4 KHz horizontal sync signal and a 50 Hz vertical sync frequency, generated from a 16.256 MHz pixel clock frequency. Thus, the horizontal, vertical and the pixel clock frequencies required by the PS/2 compatible monitors are much higher than the corresponding frequencies used by the Hercules programs for controlling the 6845 CRT controller.
Accordingly, many 6845 CRT controller parameters must be modified to enable the Hercules programs to run on the new type of monitors. However, the Hercules programs directly control the 6845-compatible registers with values for MDA-compatible monitors, which are improper on the PS/2-compatible monitors. As a result, prior to the present invention, neither the IBM VGA, nor any IBM VGA compatible clone, were able to run graphics mode Hercules programs without a special utility.
Thus, there is a requirement for a system which can run Hercules programs written for MDA monitors, but which runs them on PS/2-compatible monitors, even if these programs write directly to the 6845 CRT controller timing registers, without requiring any special utility program to notify the controller whether the program running is a Hercules program or not. This need is complicated by the additional requirement for a 6845-compatible controller that is also compatible with software written for VGA and Enhanced Graphics Adapter (EGA)* compatible PC video systems. FNT * EGA is a trademark of International Business Machines Corporation.
One reason that this is a difficult requirement to meet is that while the VGA and EGA CRT controller registers are very similar in their addressing and function, they are quite different from the 6845-compatible CRT controller registers used in the MDA, CGA, Hercules and Multi-Color Graphics Array (MCGA) PC video graphics systems. Another reason that this is a difficult requirement to meet is because the VGA/EGA CRT controller registers and the 6845 CRT controller registers are mapped at the same I/O addresses, so the controller can not distinguish between program types based on what I/O port they use.
One approach to running a Hercules program on a PS/2-compatible monitor is to employ a special utility program to establish a special mode by loading or writing all 6845 CRT controller registers with the appropriate values. If the controller has the capability of write protecting the 6845 CRT controller registers in a Hercules compatible manner (i.e. without I/O addressing conflicts), then the Hercules-compatible program could be run.
In this situation, the user employing the special utility program must know not only that his program is a Hercules program, but also whether it is graphics or text and, perhaps, what is the correct set of monitor parameters for the PS/2 Monitor. At a minimum, the user must determine, based on trial and error, which parameter set works for that particular program. Further, since a graphics program can run text in emulation mode, it is not easy for a PC user with no PC graphics technical knowledge to actually determine whether a program displaying text is running in a text mode or in a graphics mode.
Additionally, this special utility approach has still another disadvantage that the Hercules programs that use both text and graphics modes in the same program will not run effectively, because the PC user would have to run this utility to change the 6845 parameters while running the program, which would be annoying or intolerable.
To summarize, this relatively easy-to-implement special utility approach is both difficult to use and not totally satisfactory, in the sense that many Hercules programs, especially the more complex ones, would not really be usable.